﻿using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace TP_Final
{
    [Table("Liquidacion")]
    public class Liquidacion : IComparable
    {
        #region "Atributos y Propiedades"

        private int _idLiquidacion;
        [Column("id")]
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int IdLiquidacion
        {
            get { return _idLiquidacion; }
            set { _idLiquidacion = value; }
        }

        int _idLiquidador;
        [ForeignKey("Liquidador")]
        [Column("id_liquidador")]
        public int IdLiquidador
        {
            get { return _idLiquidador; }
            set { _idLiquidador = value; }
        }
        private Liquidador _liquidador;
        public virtual Liquidador Liquidador
        {
            get { return _liquidador; }
            set { _liquidador = value; }
        }

        int _idEmpleado;
        [ForeignKey("Empleado")]
        [Column("id_empleado")]
        public int IdEmpleado
        {
            get { return _idEmpleado; }
            set { _idEmpleado = value; }
        }
        private Empleado _empleado;
        public virtual Empleado Empleado
        {
            get { return _empleado; }
            set { _empleado = value; }
        }

        private DateTime _fecha;
        [Column("fecha")]
        public DateTime Fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }
        #endregion

        #region "Constructores"
        public Liquidacion() { }

        public Liquidacion(Liquidador liquidador, Empleado empleado)
        {
            this.Liquidador = liquidador;
            this.Empleado = empleado;
            this.Fecha = DateTime.Now;
        }
        #endregion

        #region "Metodos"
        public int CompareTo(object obj)
        {
            Liquidacion l = (Liquidacion)obj;
            if (this.IdLiquidacion < l.IdLiquidacion) return 1;
            else if (this.IdLiquidacion > l.IdLiquidacion) return -1;
            else return 0;
        }
        #endregion
    }
}
